package com.jilijili.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jilijili.pojo.Vlog;
import com.jilijili.pojo.bo.VlogBo;
import com.jilijili.pojo.vo.IndexVlogVO;
import com.jilijili.service.base.PagedGridResult;

/**
 * @author admin
 * @description 针对表【vlog(短视频表)】的数据库操作Service
 * @createDate 2022-03-12 07:11:29
 */
public interface VlogService extends IService<Vlog> {

    /**
     * 把counts输入到数据库中
     * @param vlogId
     * @param counts
     */
    public void flushCounts(String vlogId,Long counts);

    /**
     *  我朋友的列表
     * */
    public PagedGridResult getMyFriendVlogList(String myId, Integer page, Integer pageSize);


    /**
     *  我關注的博主視頻
     * */
    public PagedGridResult getMyFollowVlog(String myId,
                                           Integer page,
                                           Integer pageSize);


    /**
     *  查詢我的點讚列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult getMyLinkVlogList(String userId,
                                               Integer page,
                                               Integer pageSize);

    /**
     * 查询当前点赞数，重新赋值给当前视频
     * */
    public Integer getVlogBeLikedCounts(String vlogId);

    /**
     * 取消点赞
     */
    void userUnLikeVlog(String userId, String vlogId);

    /**
     *  用户点赞/喜欢的视屏
     * */
    public void userLikeVlog(String userId, String vlogId);

    /*
     *  通过用户id查询 对应的作品列表或者是否私密
     */
    public PagedGridResult queryMyVlogList(String userId,
                                Integer page,
                                Integer pageSize,
                                Integer yesOrNo);

    /**
     * 视频公开或者私密
     */
    public void changeToPrivateOrPublic(String userId,
                                        String vlogId,
                                        Integer yesOrNo);

    // 新增视频
    public void createVlog(VlogBo vlogBo);

    // 查询|搜索
    public PagedGridResult getIndexVlogList(String searchKeywords,
                                            String userId,
                                            Integer page,
                                            Integer pageSize);


    // 根据视频id查询Vlog
    public IndexVlogVO getVlogDetailById(String userId,String vlogId);


}
